.TH ACYCLIC 1 "21 March 2001"
.SH NAME
acyclic \- make directed graph acyclic
.SH SYNOPSIS
.B acyclic
[
.B \-nv?
] [
.B \-o
.I outfile
]
[ 
.I file
]
.SH DESCRIPTION
.B acyclic
is a filter that takes a directed graph as input and outputs
a copy of the graph with sufficient edges reversed to make
the graph acyclic. The reversed edge inherits all of the attributes
of the original edge. The optional file argument specifies where the
input graph is stored; by default, the program reads from \fBstdin\fP.
.SH OPTIONS
The following options are supported:
.TP
.B \-n
No output is produced, though the return value
will indicate whether the graph is acyclic or not.
.TP
.B \-v
Print information about whether the file is acyclic, has a cycle or
is undirected.
.TP
.BI \-o " outfile"
causes the output to be written to the specified file; by default,
output is written to \fBstdout\fP.
.TP
.B \-?
option causes the program to print usage information.
.SH RETURN CODES
.B acyclic
returns
.B 0
if the graph is acyclic;
.B 1
if the graph has a cycle;
.B 2
if the graph is undirected; and
.B 255
if there are any errors.
.SH BUGS
If the graph is strict and there is a cycle of length 2, 
the attributes of the reversed edge are lost.
.PP
Some edge attributes are non-symmetric, referring to either the head
or tail node. At present, there is no mechanism or convention for
correctly switching or renaming these.
.SH AUTHORS
Stephen C. North <north@research.att.com>
.br
Emden R. Gansner <erg@research.att.com>
.SH "SEE ALSO"
gc(1), dot(1), gvpr(1), gvcolor(1), ccomps(1), sccmap(1), tred(1), libgraph(3)
